﻿Imports Microsoft.VisualStudio.TestTools.UnitTesting.Web

Imports Microsoft.VisualStudio.TestTools.UnitTesting

Imports Moca.Util
Imports Moca.Web.Attr

Namespace Web

	'''<summary>
	'''WebUtilTest のテスト クラスです。すべての
	'''WebUtilTest 単体テストをここに含めます
	'''</summary>
	<TestClass()> _
	Public Class WebUtilTest
		Inherits Moca.Test.AbstractUnitTest

		Private testContextInstance As TestContext

		Protected values As IQueryStringEntity

		'''<summary>
		'''現在のテストの実行についての情報および機能を
		'''提供するテスト コンテキストを取得または設定します。
		'''</summary>
		Public Property TestContext() As TestContext
			Get
				Return testContextInstance
			End Get
			Set(value As TestContext)
				testContextInstance = value
			End Set
		End Property

#Region "追加のテスト属性"
		'
		'テストを作成するときに、次の追加属性を使用することができます:
		'
		'クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用
		<ClassInitialize()> _
		Public Shared Sub MyClassInitialize(ByVal testContext As TestContext)
			ClassInitialize(testContext)
		End Sub
		'
		'クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用
		<ClassCleanup()> _
		Public Shared Sub MyClassCleanup()
			ClassCleanup()
		End Sub
		'
		'各テストを実行する前にコードを実行するには、TestInitialize を使用
		<TestInitialize()> _
		Public Sub MyTestInitialize()
			injectWeb()
		End Sub
		'
		'各テストを実行した後にコードを実行するには、TestCleanup を使用
		'<TestCleanup()> _
		'Public Sub MyTestCleanup()
		'End Sub

#End Region


		'''<summary>
		'''ToQueryString のテスト
		'''</summary>
		<TestMethod()> _
		Public Sub ToQueryStringTestHelper()
			Dim target As WebUtil = New WebUtil()
			Dim questionMark As Boolean = True
			Dim expected As String = "?Name=test1&n=hoge1&Key=key1"
			Dim actual As String

			values.Key = "key1"
			values.Name = "test1"
			values.Note = "hoge1"

			actual = target.ToQueryString(Of IQueryStringEntity)(values, questionMark)
			Assert.AreEqual(expected, actual)

			actual = target.ToQueryString(Of IQueryStringEntity)(values, questionMark)
			Assert.AreEqual(expected, actual)
		End Sub

	End Class

End Namespace
